【Tips】コンソール画面から実行したAPIをCloudTrailから調べる方法
こんにちはカスタマーソリューション部のこーへいです!
CloudTrailとは
AWS CloudTrail は、AWS アカウントの運用とリスクの監査、ガバナンス、コンプライアンスを行えるように支援する AWS のサービスです。ユーザー、ロール、または AWS のサービスによって実行されたアクションは、CloudTrail にイベントとして記録されます。イベントには、AWS Management Console、AWS Command Line Interface、および AWS SDK と API で実行されたアクションが含まれます。
CloudTrailの説明としてはほとんど上記の引用で完結しており、実はAWSで何かしらの操作する際、操作方法がコンソール画面からのマウスクリックやcliからコマンドを叩く場合でも、ほとんどの操作が裏側でAPIとして実行されています。
つまりCloudTrailはAWS内のAPI実行履歴を記録するサービスであると言え、AWS内で実行された操作を調べたいときはまずCloudTrailの確認を行います。
APIについてもう少し詳しく知りたい方は、上記ページをご確認ください。
AWSはAPIで操作するという事実を、表面上の理解に留めずしっかり腹落ちした状態にしましょう!!
実行したいAPIの名前が分からない
皆さんはCloudShell等で実行するaws cliコマンドをどのように調べますでしょうか。
それっぽい単語でウェブ検索して辿り着く方法もあるかと思いますが、1つの方法として実際にコンソール画面で叩いてCloudTrailにイベント履歴を出力して辿り着く方法もあります。
例えば以下の記事は、AWS Config(以下Config)を一時的に全リージョンにて停止する方法を紹介した記事ですが、Configを停止するcliコマンド(もといAPI)をこの記事を書くまで私は知らない状態でした。
コンソール画面からだとすぐに停止できますが、全リージョンで設定するのは効率が悪いのでコマンド実行はマストです。
ということで、停止するコマンドのAPIもといcliを調べる必要が出てきました。
もちろんWeb検索やChatGPTに聞いてみるのも良いですが、今回は方法の1つとして実際にコンソール画面から対象のイベント(API)を実行してみて、実行履歴を保存しているCloudTrailから辿ってみました。
実際の手順
Configに移動して、左のナビゲーションバーから「設定」にいきます。
レコーダーにて「記録はオン」なので、これはオフに変更するために「編集」をクリックします。
「記録を有効化」のチェックボックスを外します。
「確認」をクリックします。
「OK」をクリックします。
レコーダーの「記録はオフ」に変更されました。
とまあ、コンソール画面にてConfigの設定を変えたわけですが、裏側ではAPIが実行されることで設定変更されています。つまりCloudTrailにイベント履歴が保存されているはずです!見に行きましょう!
CloudTrailの画面に移り、ナビゲーションバーから「イベント履歴」に移動します。
検索にて、「イベントソース」から「config.amazonaws.com」でフィルターにかけると、「StopConfigurationRecorder」とそれっぽいイベント名が記録されています。
「StopConfigurationRecorder」でウェブ検索するとこちらのConfigのAPIリファレンスがヒットしました。
Stops recording configurations of the AWS resources you have selected to record in your AWS account. AWSアカウントで記録するように選択したAWSリソースの構成の記録を停止します※翻訳ツールで日本語訳
ページを確認すると、上記記述があり、今回探していた目的のAPIであることがわかります。
更に「StopConfigurationRecorder aws cli」で検索してみるとstop-configuration-recorderがヒットしたので、こちらのドキュメントを参考に、実際のaws cliコマンドを作成することができました。
※cliコマンドでコンソール画面からと同じようにConfigを停止すると、「StopConfigurationRecorder」がCloudTrailに記録される(=コンソールでもcliでも裏側では同じAPIが実行されることがわかる)ことがわかりますので興味のある方はぜひ試してください。
まとめ
実行したいAPIの名称がわからず、cliコマンドが何なのか調べることができない方もいると思いましたので備忘録として執筆しました。
今だとChatGPTで聞けば大体正解が返ってきますが、AWSは裏側でAPIが実行されていること、実行履歴はCloudTrailで保存されていることなど、改めてAPIのことを理解できる機会なのでぜひ一度お試しください。